package com.animerank.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.animerank.entity.Vote;
import com.animerank.dto.VoteDTO;
import com.animerank.dto.Result;

import java.util.List;
import java.util.Map;

/**
 * 投票服务接口
 */
public interface IVoteService extends IService<Vote> {

    /**
     * 投票
     * @param voteDTO 投票信息
     * @param ip 用户IP地址
     * @return 投票结果
     */
    Result<?> vote(VoteDTO voteDTO, String ip);

    /**
     * 查询动漫总票数
     * @param animeId 动漫ID
     * @return 总票数
     */
    Result<Integer> getAnimeVoteCount(Long animeId);
    
    /**
     * 获取用户投票历史（支持分页）
     * @param page 页码
     * @param pageSize 每页数量
     * @return 分页数据，包含投票历史记录和总数
     */
    Result<Map<String, Object>> getUserVoteHistory(Integer page, Integer pageSize);

}